package com.um2.simplexe.client.ui.zone;

import java.awt.BorderLayout;
import java.awt.Component;

import javax.swing.JPanel;
import javax.swing.JTabbedPane;


/**
 * 
 * Ce panneau est le panneau par defaut,
 * celui donc est base tout les panneaux de l'appli.
 * 
 * 
 * Il est compose d'un tabbedPane.
 * 
 * @author jean-marie codol
 *
 */
@SuppressWarnings("serial")
public class Zone2 extends JPanel {
	
	/**
	 * L'instance courante du panneau 1
	 */
	private static Zone2 instance ;
	
	private JTabbedPane panneauxAOnglets = new JTabbedPane() ;
	
	private JPanel panneauNord = new JPanel() ;
	

	/**
	 * Constructeur par defaut
	 *
	 */
	public Zone2() {
		Zone2.instance = this ;
		this.setLayout(new BorderLayout()) ;

		this.add(this.panneauNord,BorderLayout.NORTH) ;
		this.add(this.panneauxAOnglets,BorderLayout.CENTER) ;

	}
	
	
	/**
	 * retourne l'instance unique de Zone1
	 * @return
	 */
	private static Zone2 getInstance() {
		return Zone2.instance ;
	}
	
	/**
	 * 
	 * On peut ajouter un pannneau au tabbedPane interne.
	 * 
	 */
	public static void ajouterPanel (String nom,JPanel p) {
		System.out.println("maintenant on a Zone 2 ="+Zone2.getNombrePanels()+"panneaux") ;
		Zone2.getInstance().panneauxAOnglets.addTab(nom, p) ;
	}
	
	
	/**
	 * 
	 * On peut ajouter un pannneau au tabbedPane interne.
	 * 
	 */
	public static void enleverPanel (int indice) {
		Zone2.getInstance().panneauxAOnglets.remove(indice) ;
	}
	
	
	/**
	 * 
	 * On peut ajouter un pannneau au tabbedPane interne.
	 * 
	 */
	public static void affichePanel (int indice) {
		Zone2.getInstance().panneauxAOnglets.setSelectedIndex(indice) ;
	}
	
	/**
	 * 
	 * On peut ajouter un pannneau au tabbedPane interne.
	 * 
	 */
	public static int getNombrePanels () {
		return Zone2.getInstance().panneauxAOnglets.getTabCount() ;
	}
	
	/**
	 * 
	 * On peut ajouter un pannneau au tabbedPane interne.
	 * 
	 */
	public static Component getPanel (int i) {
		return Zone2.getInstance().panneauxAOnglets.getComponentAt(i) ;
	}
	

	/**
	 * 
	 * On peut ajouter un pannneau au tabbedPane interne.
	 * 
	 */
	public static Component getCurrentPanel () {
		return Zone2.getInstance().panneauxAOnglets.getSelectedComponent() ;
	}
	
	public static JPanel getNord () {
		return Zone2.getInstance().panneauNord ;
	}


	public static int getCurrentPanelIndice() {
		return Zone2.getInstance().panneauxAOnglets.getSelectedIndex();
	}

	
}
